package main

import "fmt"

type ListNode struct {
	Val  int
	Next *ListNode
}

func getDecimalValue(head *ListNode) int {
	if head == nil {
		return 0
	}
	// 1. 定义操作节点指针变量
	res := head.Val
	cur := head.Next
	//2.移动操作节点指针变量，计算二进制的值
	for cur != nil {
		res = res*2 + cur.Val //右侧每增加一个数，需对原来的数乘2再加上新对应的数
		cur = cur.Next        //移动指针变量
	}
	return res
}
func main() {
	head := &ListNode{Val: 0}
	head.Next = &ListNode{Val: 0}
	//head.Next.Next = &ListNode{Val: 1}
	value := getDecimalValue(head)
	fmt.Println(value)
}
